package com.cyf.db.bean;

import com.cyf.util.DateUtil;
import lombok.Data;

import java.util.Date;
import java.util.Random;

/**
 * 商户生成的优惠券
 * Created by cage on 2017/3/30.
 */
@Data
public class MerchantCoupon {

    /** 线上使用 **/
    public static final int USEWAY_ONLINE = 2;

    /** 线下使用 **/
    public static final int USEWAY_OFFLINE = 1;

    /**
     * 优惠类型：1-免费时间
     **/
    public static final int COUPON_TYPE_HOURS = 1;
    /**
     * 优惠类型：2-免费金额
     **/
    public static final int COUPON_TYPE_AMOUNT = 2;
    /**
     * 优惠类型：3-切换计费规则
     **/
    public static final int COUPON_TYPE_CHANGE_FEEGROUP = 3;
    /**
     * 优惠类型：4-折扣
     **/
    public static final int COUPON_TYPE_DISCOUNT = 4;

    /**
     * 优惠券已用
     **/
    public static final int USED = 0;
    /**
     * 优惠券未用
     **/
    public static final int UNUSED = 1;
    /**
     * 优惠券失效
     **/
    public static final int FAILURE = 2;

    /**
     * 已经发送到车场
     **/
    public static final int SEND_SUCCESS = 1;
    /**
     * 未发送到车场
     **/
    public static final int  SEND_FAIL = 0;

    private Integer id;
    private Integer merchantId;         // 商户id
    private Integer parkingId;          // 车场id
    private String mobile;              // 手机号
    private Integer appUserId;          // app用户id
    private String plate;               // 车牌号码
    private Date createdTime;           // 开始时间
    private Integer status;             // 是否有效
    private Integer sendToParking;      // 是否已经发送到车场
    private String couponCode;          // 优惠码、唯一标识
    private Date endTime;               // 截止时间（根据此字段定时检测过期）
    private Integer couponType;            // 二维码类型 1是免费时间 2是免金额 3-折扣
    private Integer freeHours;            // 免费小时 单位秒
    private Integer freeAmount;            // 免费金额 单位分
    // pmsvr均升级支持（上下行通道），代码优化: 以下两个作废
    private Integer feeGroupId;         // 优惠券计费规则id（云端）
    private Integer bindingFeeGroupId;  // 优惠券绑定的计费规则id（云端）

    private Integer freeLimit;          // 优惠上限：单位分（减免方式不是按固定金额减免时，超过优惠上限部分不予减免）（0-没有上限）
    private Integer limitParkingId;     // 车场名称（优惠券仅限某停车场使用）
    private Integer useWay;             // 使用方式：1-线下使用，2-线上使用
    private Integer type;               // 优惠券类型：1-停车券 2-广告支付优惠券 3-通用券
    private Double discount;            // 折扣
    private Integer localParkingId;    //本地优惠券Id
    private String carName;             // 车主姓名
    private String remark;              // 备注
    private String parkingName;              // 车场名称
    private Date timespent;//使用时间
    private Integer localMerchantCouponId; //本地优惠券id

    private Integer couponFee = 0;
    private Integer shouldFee = 0;
    private Integer actualFee = 0;
    /**
     * 18位（14+4）
     * 二维码唯一标识（规则：当前时间+ 手机号后四位）
     *
     * @return String
     */
    public String generateCouponCode() {
        String currentTime = DateUtil.formatCurrentTime("yyyyMMddHHmmss");
        return currentTime + DateUtil.getFourRandom();
    }

    /**
     * 18位（14+4）
     * 二维码唯一标识（规则：当前时间+ 随机4位数）
     * @return  String
     */
    public String randCouponCode(){
        String currentTime = DateUtil.formatCurrentTime("yyyyMMddHHmmss");
        return currentTime +  "1111";
    }

}


